﻿#define _CRT_SECURE_NO_WARNINGS 1
// 原题连接：https://ac.nowcoder.com/acm/problem/219038
/*
题目描述：
链接：https://ac.nowcoder.com/acm/problem/219038
来源：牛客网

题目描述
给出一个正整数H，从1开始减，第一次必须减1，每次减的数字都必须和上一次相同或者是上一次的两倍，请问最少需要几次能把H恰好减到0。
输入描述:
第一行给出一个正整数
𝑇
T，
1
≤
𝑇
≤
1
0
4
1≤T≤10
4


接下来T行每行一个
𝐻
,
1
≤
𝐻
≤
1
0
9
H,1≤H≤10
9


输出描述:
每行一个正整数代表最少的次数
示例1
输入
复制
3
3
5
7
输出
复制
2
3
3
*/

// 开始解题：
// 方法——贪心 
#include <iostream>
using namespace std;

int main() {
    int t = 0, h = 0;
    scanf("%d", &t);
    while (t--) {
        scanf("%d", &h);
        int a = 1;
        int ret = 0;
        while (h) {
            h -= a;
            ret++;
            // 因为都是乘以2，所有就算是指数级上升也是可以除尽的
            if (h % (2 * a) == 0) {
                a *= 2;
            }
        }
        printf("%d\n", ret);
    }
    return 0;
}